ChatGPT 也能用来造芯,说说英语就可以了?!
ChatGPT 真的那么牛吗?
来自纽约大学 Tandon 工程学院的研究人员发布了一篇《Chip-Chat: Challenges and Opportunities in Conversational Hardware Design》论文,用实验回答道:是的,ChatGPT 确实比较厉害!
只用简单的自然语言之英语和 ChatGPT 聊聊天,便制作出了一款微处理芯片。更值得注意的是,在 ChatGPT 的助力下,这款芯片组件不仅是设计了出来的,也是经过了基础测试,可以制造出来。
纽约大学发文评价道,「这是一项史无前例的成就,可以加快芯片开发速度,并允许没有专业技术技能的个人设计芯片。」
所以说,全民”造芯“的时代真的要来临了吗?在此,我们不妨先看看研究人员到底是怎么做的。
AI 大模型的应用,硬件领域落后于软件
在论文中,研究人员指出,现代硬件设计始于自然语言提供的规范,如英文文档需求,然后再由硬件工程师使用硬件描述语言(HDL)如 Verilog,将需求用代码构建出来,完成芯片内部的设计,最终再合成为电路元件。
那么,在 AIGC 时代来临之际,如 OpenAI 的 ChatGPT 和 Google 的 Bard 号称可以生成代码,也有不少开发者使用过它们创建了一个又一个网站,但是当前在其应用范围主要聚焦在软件领域的情况,这些 AIGC 工具能否将硬件工程师的”翻译“(文档需求转换成代码)工作给取而代之。
基于此,研究人员使用了 8 种具有代表性的基准,研究了在生成硬件描述语言本身的编写时,最先进的 LLM 状态的能力和局限性。
测试原理与规则
实验环节,研究人员将 ChatGPT 作为一种模式识别器(充当人类的角色),可以在各种类型的语言(口头语、书面语)中转换自如,同时,ChatGPT 可以让硬件工程师们跳过 HDL 阶段。
整体验证流程如下图所示:
详细来看,首先,硬件工程师对大模型提供初始提示,让它创建一个 Verilog 模型,然后提供输入、输出的具体信息。最终硬件工程师对输出设计进行可视化评估,以确定其是否符合基本设计规范。
如果一个设计不符合规范,它会在相同的提示下再生成五次。倘若它仍然不符合规范,那么它就会失败。
一旦设计和测试用例已经写好了,它们就会被用 Icarus Verilog (iverilog,Verilog 硬件描述语言的实现工具之一) 编译。如果编译成功,则进行模拟。如果没有报告错误,则设计通过,不需要反馈 (NFN)。
如果这些操作中的任何一个报告了错误,它们就会被反馈到模型中,并被要求“请提供修正”,这被称为工具反馈 (TF)。如果相同的错误或错误类型出现三次,那么简单的人类反馈 (SHF) 是由用户给出的,通常通过说明 Verilog 中什么类型的问题会导致这个错误 (例如:声明中出现语法错误)。
如果错误持续存在,则会给出适度的人类反馈 (Moderate Human Feedback,MHF) ,并提供稍微更直接的信息给工具,以识别特定的错误。
如果错误持续存在,则会给出高级人类反馈 (Advanced HumanFeedback,AHF),它依赖于精确地指出错误所在和修复它的方法。
一旦设计编译和模拟,没有失败的测试用例,它就被认为是成功的。
但是如果高级反馈不能修复错误,或者用户需要编写任何 Verilog 代码来解决错误,则测试被认为是失败的。如果会话超过 25 条消息,符合每 3 小时 ChatGPT-4 消息的 OpenAI 速率限制,则该测试也被视为失败。
Bard 和 HuggingChat 在首轮测试中折戟
具体实验环节,研究人员针对 8 位移位寄存器进行了基准测试。
他们要求大模型尝试为一个「测试名称」创建一个 Verilog 模型,然后提供规范,定义输入和输出端口以及任何需要的进一步细节,并进一步询问大模型“我将如何写一个设计,以满足这些规格?”
与此同时,研究人员还直接让大模型生成测试台的设计:
你能为这个设计编写一个 Verilog 测试台吗?测试台应该具备自检功能,并且能够与 iverilog 一起用于仿真和验证。如果测试用例失败,测试台应该能够提供足够的信息,以便找到并解决错误。
进而,研究人员基于 ChatGPT-4、ChatGPT-3.5、Bard、HuggingChat 四款大模型得到了输出内容:
最终结果显示,两个 ChatGPT 模型都能够满足规格,并开始进行设计流程。不过,Bard 和 HuggingChat 未能满足规格的初始标准。
虽然按照上文提到的测试流程,研究人员基于 Bard 和 HuggingChat 的初始提示,又让大模型重新生成了五次回答,但是多轮之后,这两个模型还是都失败了。其中,Bard 始终无法满足给定的设计规范,HuggingChat 的 Verilog 输出是在模块定义之后就开始不正确了。
鉴于 Bard 和 HuggingChat 在初始挑战基准提示符上的性能较差,研究人员决定后续只针对 ChatGPT-4 和 ChatGPT-3.5 进行完整的测试。
ChatGPT-4 和 ChatGPT-3.5 的角逐
下图显示了 ChatGPT-4 和 ChatGPT-3.5 的基准测试结果,明显可以看出,ChatGPT-3.5 的性能要比 ChatGPT-4 差一些,大多数对话导致基准测试失败,而大多数通过自己测试台的对话都是不兼容的。
反观 ChatGPT-4 的表现更胜一筹,大多数的基准测试都通过了,其中大部分只需要工具反馈。不过,在测试台设计中,仍然需要人类的反馈。
ChatGPT-4 与硬件工程师配对,共同开发芯片
为了探索 LLM 的潜力,研究人员还让硬件设计工程师和 ChatGPT-4 配对,共同设计一种基于 8 位的累加器的微处理器。
对 ChatGPT-4 的初始提示如下所示:
让我们一起做一个全新的微处理器设计......我认为我们需要限制自己的累加器8位架构,没有多字节指令。既然如此,你觉得我们该怎么开始?
考虑到空间限制,研究人员的目标是使用 32 字节内存(数据和指令相结合)的冯·诺依曼型设计。
最终,ChatGPT-4 与硬件工程师共同设计了一种新颖的基于 8 位累加器的微处理器架构。该处理器采用 Skywater 130nm 工艺,这意味着这些“Chip-Chat”实现了我们认为是世界上第一个完全由人工智能编写的用于流片的 HDL。
GPT-4 设计的基于累加器的数据路径(由人类绘图)
在论文中,研究人员总结道,ChatGPT-4 产生了相对高质量的代码,这可以从短暂的验证周转中看出。考虑到 ChatGPT-4 每 3 小时 25 条消息的速率限制,此设计的总时间预算为 ChatGPT-4 的 22.8 小时(包括重新启动)。每条消息的实际生成平均约为 30 秒:如果没有速率限制,整个设计本可以在 <100 分钟内完成,具体取决于人类工程师。尽管 ChatGPT-4 相对容易地生成了 Python 汇编程序,但它很难编写为我们的设计编写的程序,而且ChatGPT也没有编写任何重要的测试程序。
总体上,研究人员完成了在模拟和 FPGA 仿真中评估了一系列全面的人工编写的汇编程序中的所有 24 条指令。
ChatGPT 能够节省芯片开发周期
“这项研究产生了我们认为是第一个完全由 AI 生成的 HDL,用于制造物理芯片,”纽约大学 Tandon 的研究助理教授兼研究团队成员 Hammond Pearce 博士说。“一些人工智能模型,如 OpenAI 的 ChatGPT 和谷歌的 Bard,可以生成不同编程语言的软件代码,但它们在硬件设计中的应用尚未得到广泛研究。这项研究表明 AI 也可以使硬件制造受益,尤其是当它被用于对话时,你可以通过一种来回的方式来完善设计。”
然而,在这个过程中,研究人员也需要进一步测试和解决将 AI 用于芯片设计所涉及的安全考虑因素。
整体而言,虽然 ChatGPT 不是一款专门面向硬件领域的自动化软件工具,但是它可以成为一款 EDA 辅助工具,而且帮助 EDA 设计师们大大降低了知识门槛。
研究人员也表示,如果在现实环境中实施,在芯片制造中使用 LLM 模型可以减少 HDL 转换过程中的人为错误,有助于提高生产力,缩短设计时间和上市时间,并允许进行更具创意的设计。其实,仅是这一点,ChatGPT 便值得被硬件工程师们拿来在硬件领域参与更多的尝试与探索。
更详细的测试流程见论文:https://arxiv.org/pdf/2305.13243.pdf
参考:
https://www.tomshardware.com/news/conversation-with-chatgpt-was-enough-to-develop-part-of-a-cpu
https://engineering.nyu.edu/news/chip-chat-conversations-ai-models-can-help-create-microprocessing-chips-nyu-tandon-researchers